package www.worq.model.dao;

import java.sql.SQLException;
import java.util.ArrayList;

import www.worq.controller.beans.propietarioBean;

public class propietariosDao extends oreqDao {

	public ArrayList<propietarioBean> getPROPIETARIOS() throws SQLException {
		ArrayList<propietarioBean> PROPIETARIOS = new ArrayList<propietarioBean>();
		try {
			StringBuilder query = new StringBuilder();
			query.append("Select * from propietario");
			conn = this.getConnectionMYSQL();
			ps = conn.prepareStatement(query.toString());
			rs = ps.executeQuery();
			System.out
					.println("dao.propietarios.getPROPIETARIOS.Ejecutado----------> "
							+ query.toString());

			while (rs.next()) {
				propietarioBean propietario = new propietarioBean();
				propietario.setId_propietario(rs.getInt(1));
				propietario.setRfc(rs.getString(2));
				propietario.setNombre(rs.getString(3));
				propietario.setDireccion(rs.getString(4));
				propietario.setCredencial(rs.getString(5));
				propietario.setId_credencial(rs.getString(6));

				PROPIETARIOS.add(propietario);
			}
			System.out
					.println("dao.propietarios.getPROPIETARIOS----------> Cargado");
		} catch (Exception e) {
			System.out.println("propietariosDao...Error..." + e.getMessage());
		} finally {
			close(conn);
			close(ps);
			close(rs);
		}
		return PROPIETARIOS;
	}
	
	public void getPROPIETARIO(propietarioBean propietario) throws SQLException {
		try {
			StringBuilder query = new StringBuilder();
			query.append("Select * from propietario where rfc='").append(propietario.getRfc()).append("'");
			conn = this.getConnectionMYSQL();
			ps = conn.prepareStatement(query.toString());
			rs = ps.executeQuery();
			System.out
					.println("dao.propietarios.getPROPIETARIOS.Ejecutado----------> "
							+ query.toString());

			while (rs.next()) {
				propietario.setId_propietario(rs.getInt(1));
				propietario.setRfc(rs.getString(2));
				propietario.setNombre(rs.getString(3));
				propietario.setDireccion(rs.getString(4));
				propietario.setCredencial(rs.getString(5));
				propietario.setId_credencial(rs.getString(6));

			}
			System.out
					.println("dao.propietarios.getPROPIETARIOS----------> Cargado");
		} catch (Exception e) {
			System.out.println("propietariosDao...Error..." + e.getMessage());
		} finally {
			close(conn);
			close(ps);
			close(rs);
		}
	}

	public int nextId() {
		int id = 0;
		try {
			StringBuilder query = new StringBuilder();
			query.append("Select id_propietario from propietario");
			conn = this.getConnectionMYSQL();
			ps = conn.prepareStatement(query.toString());
			rs = ps.executeQuery();
			System.out.println("dao.propietarios.nextId.Ejecutado----------> "
					+ query.toString());

			while (rs.next()) {
				if (id < rs.getInt(1)) {
					id = rs.getInt(1);
				}
			}
			System.out.println("dao.propietarios.nextId----------> Cargado");
		} catch (Exception e) {
			System.out.println("propietariosDao...Error..." + e.getMessage());
		} finally {
			close(conn);
			close(ps);
			close(rs);
		}
		return id + 1;
	}

	public void insertPROPIETARIO(propietarioBean bean) throws Exception {
		try {
			StringBuilder query = new StringBuilder();
			conn = this.getConnectionMYSQL();

			query.append("INSERT INTO propietario ")
					.append("(id_propietario, rfc, nombre, direccion, credencial, id_credencial) ")
					.append("values (").append(bean.getId_propietario())
					.append(",'").append(bean.getRfc()).append("','")
					.append(bean.getNombre()).append("','")
					.append(bean.getDireccion()).append("','")
					.append(bean.getCredencial()).append("','")
					.append(bean.getId_credencial()).append("');");

			st = conn.createStatement();
			st.executeUpdate(query.toString());
			System.out
					.println("dao.propietarios.insertPROPIETARIO.Ejecutado----------> "
							+ query.toString());
			System.out
					.println("dao.propietarios.insertPROPIETARIO----------> insertado");

		} catch (SQLException error) {
			throw new Exception(error.getMessage());
		} catch (Exception error) {
			throw new Exception(error.getMessage());
		} finally {
			close(conn);
			close(st);
		}
	}

	public void deletePROPIETARIO(propietarioBean bean) throws Exception {
		try {
			StringBuilder query = new StringBuilder();
			conn = this.getConnectionMYSQL();

			query.append("DELETE FROM propietario where id_propietario=")
					.append(bean.getId_propietario());

			st = conn.createStatement();
			st.executeUpdate(query.toString());
			System.out
					.println("dao.propietarios.deletePROPIETARIO.Ejecutado----------> "
							+ query.toString());
			System.out
					.println("dao.propietarios.deletePROPIETARIO----------> eliminado");

		} catch (SQLException error) {
			throw new Exception(error.getMessage());
		} catch (Exception error) {
			throw new Exception(error.getMessage());
		} finally {
			close(conn);
			close(st);
		}
	}

	public void updatePROPIETARIO(propietarioBean bean) throws Exception {
		try {
			StringBuilder query = new StringBuilder();
			conn = this.getConnectionMYSQL();

			query.append("UPDATE propietario SET ").append("rfc='")
					.append(bean.getRfc()).append("',nombre='")
					.append(bean.getNombre()).append("',direccion='")
					.append(bean.getDireccion()).append("',credencial='")
					.append(bean.getCredencial()).append("',id_credencial='")
					.append(bean.getId_credencial())
					.append("' where id_propietario=")
					.append(bean.getId_propietario()).append(";");

			st = conn.createStatement();
			st.executeUpdate(query.toString());
			System.out
					.println("dao.propietarios.updatePROPIETARIO.Ejecutado----------> "
							+ query.toString());
			System.out
					.println("dao.propietarios.updatePROPIETARIO----------> actualizado");

		} catch (SQLException error) {
			throw new Exception(error.getMessage());
		} catch (Exception error) {
			throw new Exception(error.getMessage());
		} finally {
			close(conn);
			close(st);
		}
	}
}
